package god.dao01;

/**
 * @author wang hao
 * @date 2023-02-18 11:33
 *  找局部最小问题
 */
public class Demo03 {

    // [11,3,6,8,5,7,9]
    public static int getLessIndex(int[] arr){
        if (arr == null || arr.length == 0){
            return -1;
        }

        if (arr.length == 1 || arr[0] < arr[1]){
            return 0;
        }

        if (arr[arr.length - 1] < arr[arr.length - 2]){
            return arr.length - 1;
        }

        int left = 1;
        int right = arr.length - 2;
        while (left < right){
            int mid = left + ((right - left) >> 1);
            if (arr[mid] > arr[mid + 1]){  // 如果 mid 位置 比 右侧大   左边就不要了
                left = mid + 1;
            }else if (arr[mid] > arr[mid - 1]){ // 如果 mid位置 比左边大   右侧就不要了
                right = mid - 1;
            }else {  // 在否则 既不比左边大  也不比右边大 就返回
                return mid;
            }
        }
        return left;
    }

}
